#ifndef __PRODUCT_INFO__
#define __PRODUCT_INFO__

// ##
#define DEVICE_NAME         "stm32l475 discovery iot"
#define DEVICE_MODEL        "freeWear"
#define SOFTWARE_VERSION    "fw_v1.0.0"
#define HARDWARE_VERSION    "hw_v1.0.0"
#define MANUFACTURER_NAME   "starry sky"

// ##
#define BUILT_YEAR          (((__DATE__ [9] - '0')) * 10 + (__DATE__ [10] - '0'))

#define BUILT_MONTH         \
                            ( __DATE__ [0] == 'J' && __DATE__ [1] == 'a' && __DATE__ [2] == 'n' ? 1 \
                            : __DATE__ [0] == 'F' && __DATE__ [1] == 'e' && __DATE__ [2] == 'b' ? 2 \
                            : __DATE__ [0] == 'M' && __DATE__ [1] == 'a' && __DATE__ [2] == 'r' ? 3 \
                            : __DATE__ [0] == 'A' && __DATE__ [1] == 'p' && __DATE__ [2] == 'r' ? 4 \
                            : __DATE__ [0] == 'M' && __DATE__ [1] == 'a' && __DATE__ [2] == 'y' ? 5 \
                            : __DATE__ [0] == 'J' && __DATE__ [1] == 'u' && __DATE__ [2] == 'n' ? 6 \
                            : __DATE__ [0] == 'J' && __DATE__ [1] == 'u' && __DATE__ [2] == 'l' ? 7 \
                            : __DATE__ [0] == 'A' && __DATE__ [1] == 'u' && __DATE__ [2] == 'g' ? 8 \
                            : __DATE__ [0] == 'S' && __DATE__ [1] == 'e' && __DATE__ [2] == 'p' ? 9 \
                            : __DATE__ [0] == 'O' && __DATE__ [1] == 'c' && __DATE__ [2] == 't' ? 10 \
                            : __DATE__ [0] == 'N' && __DATE__ [1] == 'o' && __DATE__ [2] == 'v' ? 11 : 12 )

#define BUILT_DAY           ((__DATE__ [4] == ' ' ? 0 : __DATE__ [4] - '0') * 10 + (__DATE__ [5] - '0'))

#define BUILT_HOUR          (__TIME__[0] - 0x30) * 10 + (__TIME__[1] - 0x30)
#define BUILT_MINUTE        (__TIME__[3] - 0x30) * 10 + (__TIME__[4] - 0x30)
#define BUILT_SECOND        (__TIME__[6] - 0x30) * 10 + (__TIME__[7] - 0x30)

#endif
